package com.yonyou.cyxdms.sysAuth.service.vo.employee;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.yonyou.cyx.function.utils.jsonserializer.localdatetime.JsonLocalDateTimeDeserializer;
import com.yonyou.cyx.function.utils.jsonserializer.localdatetime.JsonLocalDateTimeSerializer;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;
import java.util.Date;

/**
 * 新增员工 用
 *
 * @author 李贺
 * @date 2019年09月19日
 */

public class EmployeeAddVO {

    //1.可新增 2.已绑定，未离职 3.已绑定，已离职
    private Integer type;
    //用户Id
    private Long userId;
    //empId
    private Long empId;
    //创建日期
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createdAt;
    //员工编号
    private String employeeNo;
    //登录账号
    private String userCode;
    //所属部门id
    private Long orgId;
    //所属部门id
    private String orgName;
    //在职状态
    private Integer employeeStatus;
    //离职日期
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date dimissionDate;
    //员工姓名
    private String employeeName;
    //手机号码
    private String mobilePhone;
    //性别
    private Integer gender;
    //身份证号
    private String certificateId;
    //出生日期
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date birthday;
    //Email
    private String eMail;
    //是否冻结
    private Integer lockFlag;
    //图片
    private Integer photos;

    //失败次数
    private Integer failureNum;
    /**
     * 班组ID
     */
    private String workgroupId;
    /**
     * 工种ID
     */
    private String workerTypeId;
    /**
     * 技师等级
     */
    private String technicianGrade;
    /**
     * 主工位
     */
    private String maintainStationId;
    /**
     * 副工位
     */
    private String deputyStationId;


    //第一岗位
    private Integer firstPost;
    //第二岗位
    private Integer secondPost;
    //第三岗位
    private Integer thirdPost;
    // 入职时间
    @JsonDeserialize(using = JsonLocalDateTimeDeserializer.class)
    @JsonSerialize(using = JsonLocalDateTimeSerializer.class)
    private LocalDateTime entryTime;
    //民族
    private String nation;
    //驾驶证级别
    private String drivingLevel;
    //教育程度
    private Integer degreeEdu;
    //年龄
    private Integer age;
    //汽车行业时长（年）
    private Integer autoTime;
    //是否校企合作院校毕业
    private Integer cooperationSchool;
    //毕业院校
    private String graduateSchool;
    //冻结原因
    private String lockCause;
    //备注
    private String remark;
    //密码
    private String password;
private String headPortrait;

    public String getHeadPortrait() {
        return headPortrait;
    }

    public void setHeadPortrait(String headPortrait) {
        this.headPortrait = headPortrait;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getOrgName() {
        return orgName;
    }

    public void setOrgName(String orgName) {
        this.orgName = orgName;
    }

    public Integer getFailureNum() {
        return failureNum;
    }

    public void setFailureNum(Integer failureNum) {
        this.failureNum = failureNum;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getEmpId() {
        return empId;
    }

    public void setEmpId(Long empId) {
        this.empId = empId;
    }

    public Date getCreatedAt() {
        return createdAt;
    }

    public void setCreatedAt(Date createdAt) {
        this.createdAt = createdAt;
    }

    public String getEmployeeNo() {
        return employeeNo;
    }

    public void setEmployeeNo(String employeeNo) {
        this.employeeNo = employeeNo;
    }

    public String getUserCode() {
        return userCode;
    }

    public void setUserCode(String userCode) {
        this.userCode = userCode;
    }

    public Long getOrgId() {
        return orgId;
    }

    public void setOrgId(Long orgId) {
        this.orgId = orgId;
    }

    public Integer getEmployeeStatus() {
        return employeeStatus;
    }

    public void setEmployeeStatus(Integer employeeStatus) {
        this.employeeStatus = employeeStatus;
    }

    public Date getDimissionDate() {
        return dimissionDate;
    }

    public void setDimissionDate(Date dimissionDate) {
        this.dimissionDate = dimissionDate;
    }

    public String getEmployeeName() {
        return employeeName;
    }

    public void setEmployeeName(String employeeName) {
        this.employeeName = employeeName;
    }

    public String getMobilePhone() {
        return mobilePhone;
    }

    public void setMobilePhone(String mobilePhone) {
        this.mobilePhone = mobilePhone;
    }

    public Integer getGender() {
        return gender;
    }

    public void setGender(Integer gender) {
        this.gender = gender;
    }

    public String getCertificateId() {
        return certificateId;
    }

    public void setCertificateId(String certificateId) {
        this.certificateId = certificateId;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public String geteMail() {
        return eMail;
    }

    public void seteMail(String eMail) {
        this.eMail = eMail;
    }

    public Integer getLockFlag() {
        return lockFlag;
    }

    public void setLockFlag(Integer lockFlag) {
        this.lockFlag = lockFlag;
    }

    public Integer getPhotos() {
        return photos;
    }

    public void setPhotos(Integer photos) {
        this.photos = photos;
    }

    public String getWorkgroupId() {
        return workgroupId;
    }

    public void setWorkgroupId(String workgroupId) {
        this.workgroupId = workgroupId;
    }

    public String getWorkerTypeId() {
        return workerTypeId;
    }

    public void setWorkerTypeId(String workerTypeId) {
        this.workerTypeId = workerTypeId;
    }

    public String getTechnicianGrade() {
        return technicianGrade;
    }

    public void setTechnicianGrade(String technicianGrade) {
        this.technicianGrade = technicianGrade;
    }

    public String getMaintainStationId() {
        return maintainStationId;
    }

    public void setMaintainStationId(String maintainStationId) {
        this.maintainStationId = maintainStationId;
    }

    public String getDeputyStationId() {
        return deputyStationId;
    }

    public void setDeputyStationId(String deputyStationId) {
        this.deputyStationId = deputyStationId;
    }

    public Integer getFirstPost() {
        return firstPost;
    }

    public void setFirstPost(Integer firstPost) {
        this.firstPost = firstPost;
    }

    public Integer getSecondPost() {
        return secondPost;
    }

    public void setSecondPost(Integer secondPost) {
        this.secondPost = secondPost;
    }

    public Integer getThirdPost() {
        return thirdPost;
    }

    public void setThirdPost(Integer thirdPost) {
        this.thirdPost = thirdPost;
    }

    public LocalDateTime getEntryTime() {
        return entryTime;
    }

    public void setEntryTime(LocalDateTime entryTime) {
        this.entryTime = entryTime;
    }

    public String getNation() {
        return nation;
    }

    public void setNation(String nation) {
        this.nation = nation;
    }

    public String getDrivingLevel() {
        return drivingLevel;
    }

    public void setDrivingLevel(String drivingLevel) {
        this.drivingLevel = drivingLevel;
    }

    public Integer getDegreeEdu() {
        return degreeEdu;
    }

    public void setDegreeEdu(Integer degreeEdu) {
        this.degreeEdu = degreeEdu;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Integer getAutoTime() {
        return autoTime;
    }

    public void setAutoTime(Integer autoTime) {
        this.autoTime = autoTime;
    }

    public Integer getCooperationSchool() {
        return cooperationSchool;
    }

    public void setCooperationSchool(Integer cooperationSchool) {
        this.cooperationSchool = cooperationSchool;
    }

    public String getGraduateSchool() {
        return graduateSchool;
    }

    public void setGraduateSchool(String graduateSchool) {
        this.graduateSchool = graduateSchool;
    }

    public String getLockCause() {
        return lockCause;
    }

    public void setLockCause(String lockCause) {
        this.lockCause = lockCause;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    @Override
    public String toString() {
        return "EmployeeAddVO{" +
                "type=" + type +
                ", userId=" + userId +
                ", empId=" + empId +
                ", createdAt=" + createdAt +
                ", employeeNo='" + employeeNo + '\'' +
                ", userCode='" + userCode + '\'' +
                ", orgId=" + orgId +
                ", employeeStatus=" + employeeStatus +
                ", dimissionDate=" + dimissionDate +
                ", employeeName='" + employeeName + '\'' +
                ", mobilePhone='" + mobilePhone + '\'' +
                ", gender=" + gender +
                ", certificateId='" + certificateId + '\'' +
                ", birthday=" + birthday +
                ", eMail='" + eMail + '\'' +
                ", lockFlag=" + lockFlag +
                ", photos=" + photos +
                ", workgroupId=" + workgroupId +
                ", workerTypeId=" + workerTypeId +
                ", technicianGrade=" + technicianGrade +
                ", maintainStationId=" + maintainStationId +
                ", deputyStationId=" + deputyStationId +
                ", firstPost=" + firstPost +
                ", secondPost=" + secondPost +
                ", thirdPost=" + thirdPost +
                ", entryTime=" + entryTime +
                ", nation='" + nation + '\'' +
                ", drivingLevel='" + drivingLevel + '\'' +
                ", degreeEdu=" + degreeEdu +
                ", age=" + age +
                ", autoTime=" + autoTime +
                ", cooperationSchool=" + cooperationSchool +
                ", graduateSchool='" + graduateSchool + '\'' +
                ", lockCause='" + lockCause + '\'' +
                ", remark='" + remark + '\'' +
                '}';
    }
}